from typing import Iterator


class Countdown(Iterator[int]):
    # 初始化方法，设置倒计时的起始值
    def __init__(self, start: int) -> None:
        self.current = start

    # 实现迭代器的__next__方法，返回当前值并递减，直到0为止
    def __next__(self) -> int:
        if self.current <= 0:
            raise StopIteration
        # 该方法用于减少当前值并返回减少前的值
        self.current -= 1
        return self.current + 1

    # 实现迭代器的__iter__方法，返回迭代器自身
    def __iter__(self) -> Iterator[int]:
        return self


# 使用
for num in Countdown(5):
    print(num)  # 输出: 5, 4, 3, 2, 1





# __next__方法，返回当前值